﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Xna.Framework;

namespace WindowsGame1
{
    class LordEnemy: PrototypeEnemy
    {
        public LordEnemy(Vector2 start,  int health, int dmg, int speed)
        {
            Position = start;
            damage = dmg;
            hp = health;
            maxSpeed = speed;
            cowardace = 300;
            attackTime = 2000;
            attackRange = 99999;
            spawnsChildren = true;
            childMaxSpeed = DEFAULTSPEED;
            childhp = DEFAULTHP;
            childDamage = DEFAULTDMG;
            childAttackTime = DEFAULTATTACKTIME;
        }

        public LordEnemy(string artName, Vector2 start, int health, int dmg, int speed)
        {
            AssetName = artName;
            Position = start;
            damage = dmg;
            hp = health;
            maxSpeed = speed;
            cowardace = 300;
            attackTime = 4000;
            attackDelay = 500;
            attackRange = 99999;
            spawnsChildren = true;
            childMaxSpeed = DEFAULTSPEED;
            childhp = DEFAULTHP;
            childDamage = DEFAULTDMG;
            childAttackTime = DEFAULTATTACKTIME;
        }

        public LordEnemy(Vector2 start, int health, int dmg, int speed, int kidSpeed, int kidhp, int kidDamage, double kidAttackSpeed)
        {
            Position = start;
            damage = dmg;
            hp = health;
            maxSpeed = speed;
            cowardace = 300;
            attackTime = 4000;
            attackDelay = 500;
            attackRange = 99999;
            spawnsChildren = true;
            childMaxSpeed = kidSpeed;
            childhp = kidhp;
            childDamage = kidDamage;
            childAttackTime = kidAttackSpeed;
            childAttackDelay = DEFAULTATTACKDELAY;
        }

        public LordEnemy()
        {
            cowardace = 300;
            attackTime = 4000;
            attackDelay = 500;
            attackRange = 99999;
            spawnsChildren = true;
            childMaxSpeed = DEFAULTSPEED;
            childhp = DEFAULTHP;
            childDamage = DEFAULTDMG;
            childAttackTime = DEFAULTATTACKTIME;
            childAttackDelay = DEFAULTATTACKDELAY;

            Position = new Vector2(400, 200);
        }

        internal override void movement(GameTime theGameTime)
        {
            likeABitch(theGameTime);
        }

        internal override void transitionToAttacking()
        {
            currentTexture = mAttackSpriteTexture;
        }

        internal override void performAttack()
        {
            RunEnemy kid = new RunEnemy(Position, childhp, childDamage, childMaxSpeed);
            addMakeList(kid);
        }

        internal override void transitionToWaiting()
        {

        }

        internal override void transitionToWalking()
        {
            currentTexture = mSpriteTexture;
        }
    }
}
